package com.ygqh.baby.service;

import java.util.List;

import com.ygqh.baby.ao.QueryInfo;
import com.ygqh.baby.ao.ResultSet;
import com.ygqh.baby.ao.SubscribeType;
import com.ygqh.baby.po.YgSubscribeMsgDetail;

public interface YgSubscribeMsgDetailService {

	List<YgSubscribeMsgDetail> find();

	int findCount();

	YgSubscribeMsgDetail findById(Long id);

	int save(YgSubscribeMsgDetail ygSubscribeMsgDetail);

	int update(YgSubscribeMsgDetail ygSubscribeMsgDetail);

	int saveOrUpdate(YgSubscribeMsgDetail ygSubscribeMsgDetail);

	ResultSet<YgSubscribeMsgDetail> search(QueryInfo queryInfo, String q);

	/**
	 * 
	 * @Title: addSubscribeMsg
	 * @param templateId
	 * @param openId
	 * @param scene订阅场景值
	 *            (通知类型 + “-”+ 关联值) 入参
	 * @return int 返回类型
	 * @author （guohao）
	 * @throws
	 * @date 2017年8月3日 下午1:42:41
	 * @version V1.0
	 */
	int addSubscribeMsg(String templateId, String openId, String scene);

	/**
	 * 
	 * @Title: findCountByType
	 * @param subscribeType
	 * @param openId
	 *            （可空）
	 * @param scene
	 *            订阅时发给微信的场景值 （可空）
	 * @param isSend
	 * @return 入参
	 * @return Boolean 返回类型
	 * @author （guohao）
	 * @throws
	 * @date 2017年8月8日 下午5:02:58
	 * @version V1.0
	 */
	int findCountByType(SubscribeType subscribeType, String openId, String scene, Boolean isSend);

	/**
	 * 
	 * @Title: findByType
	 * @param subscribeType
	 * @param openId
	 *            可空
	 * @param scene
	 *            订阅时发给微信的场景值 （可空）
	 * @param isSend
	 * @return 入参
	 * @return List<YgSubscribeMsgDetail> 返回类型
	 * @author （guohao）
	 * @throws
	 * @date 2017年8月1日 下午12:15:04
	 * @version V1.0
	 */
	List<YgSubscribeMsgDetail> findByType(SubscribeType subscribeType, String openId, String scene, Boolean isSend);

	int updateSendStatusBatch(List<YgSubscribeMsgDetail> list);

	List<YgSubscribeMsgDetail> findByTypeAndRelationId(SubscribeType subscribeType, List<Long> relationIdList, Boolean isSend);

}
